The present invention relates to the use of an agent to compile, record, playback and monitor commands used by programs running on a computer.
In many application programs there is a facility for recording keystrokes made by a user in interacting with the application program. These keystrokes, stored in a macro file, may be later played back. This use of playback using a macro can allow a user to simply re-execute a complicated set of commands. Additionally, the user can simplify down to the running of a macro an often repeated task.
Typically, this type of use of macros has been utilized on a syntax level. What is meant herein by "syntax level" is the action a user makes, such as keystrokes or movements of a mouse, in order to interact with an application. For instance, macro files created for later playback, typically store a series of keystrokes. An application executing a macro merely replays the stored keystrokes, and executes them as if a user were typing the keystrokes on the keyboard.
To simplify the creation of macro files, an application often has a "record" mode which allows a user to interact with the application program to perform a task. The keystrokes the user uses in performing the task are recorded in a macro file. The macro file then may be played back whenever it is desired to repeat the task.
Although storing keystrokes in macro files for playback is a useful practice, it is inadequate in many respects. For example, current schemes for storing keystrokes in macro files are application dependent. They are implemented by a particular application which has its own set of standard rules. Further, such schemes operate syntactically, requiring a user to understand the syntax of a particular application in order to create a macro file which will operate correctly on that application. Additionally, there is no feedback inherent in the system to account for any differences in the location or state of objects between the time the keystrokes are recorded and the time the keystrokes are played back. Furthermore, there is typically no way to create macro files which when played back operate outside the particular application by which the macro file is created.